<?php

// Постепенно нужно избавиться от этого файла

defined('_IN_CMS') or die('Fuck off');

// Парсинг поисковых запросов
// statistic.php
if (!function_exists('is_unicode')) { 
  function is_unicode($str) { 
    for ($i=0; $i<strlen($str); $i++) { 
      // Если символ с кодом больше 191, то возможно это юникод 
      if (ord($str[$i])>191) { 
        // Следующий символ должен быть в интервале 
        // 10000000b ... 10111111b (128...191) 
        if (ord($str[($i+1)])<128 || ord($str[($i+1)])>191) { 
          // Условие не выполнено, значит это не юникод 
          return false; 
        } 
        else { 
          // Пропускаем один байт, т.к. он является частью символа 
          $i++; 
        } 
      } 
    } 
    // Проверка пройдена, это юникод 
    return true; 
  } 
}

// Функция разбора поля REFERER 
function parse_refer($refer) {
    if ($refer == '') return ''; // Проверка на пустоту
    if (substr($refer, 7, 7) == 'miha.ru') return $refer;
    // База данных поисковых систем
    $search_engines=Array(
        Array('name'=>"Картинки.Mail", "pattern"=>"go.mail.ru/search_images", "param"=>"q="),
        Array('name'=>"Mail", "pattern"=>"go.mail.ru", "param"=>"q="),
        Array('name'=>"Google Images", "pattern"=>"images.google.", "param"=>"q="),
        Array('name'=>"Google", "pattern"=>"google.", "param"=>"q="),
        Array('name'=>"Google", "pattern"=>"google.", "param"=>"as_q="),
        Array('name'=>"Live Search", "pattern"=>"search.live.com", "param"=>"q="),
        Array('name'=>"RapidShare Search Engine", "pattern"=>"rapidshare-search-engine", "param"=>"s="),
        Array('name'=>"Rambler", "pattern"=>"rambler.ru", "param"=>"query="), 
        Array('name'=>"Rambler", "pattern"=>"rambler.ru", "param"=>"words="), 
        Array('name'=>"Yahoo!", "pattern"=>"search.yahoo.com", "param"=>"p="), 
        Array('name'=>"Nigma", "pattern"=>"nigma.ru/index.php", "param"=>"s="), 
        Array('name'=>"Nigma", "pattern"=>"nigma.ru/index.php", "param"=>"q="), 
        Array('name'=>"MSN", "pattern"=>"search.msn.com/results", "param"=>"q="), 
        Array('name'=>"Ask", "pattern"=>"ask.com/web", "param"=>"q="), 
        Array('name'=>"QIP", "pattern"=>"search.qip.ru/search", "param"=>"query="), 
        Array('name'=>"RapidAll", "pattern"=>"rapidall.com/search.php", "param"=>"query="), 
        Array('name'=>"Яндекс.Картинки", "pattern"=>"images.yandex.ru/", "param"=>"text="), 
        Array('name'=>"Яндекс.Mobile", "pattern"=>"m.yandex.ru/search", "param"=>"query="), 
        Array('name'=>"Яндекс", "pattern"=>"hghltd.yandex.net", "param"=>"text="), 
        Array('name'=>"Яндекс", "pattern"=>"yandex.ru", "param"=>"text=") 
    ); 
    $tmp=explode('?', $refer);
    $chk_site=$tmp[0];
    $params=explode('&', implode('&', $tmp));
    $result_engine='';
    $result_title=$refer; 
    for ($i=0; $i<count($params); $i++) { 
        if ($params[$i]=="") { continue; } 
        foreach ($search_engines as $engine) { 
            if (strpos($chk_site, $engine['pattern']) && substr($params[$i], 0, strlen($engine['param'])) == $engine['param']) { 
                $result_title=substr($params[$i], strlen($engine['param'])); 
                $result_engine=$engine['name']; 
                break; 
            }
        }
    }
    if ($result_engine!="") {
        $str=trim(urldecode($result_title)); 
        if (is_unicode($str)) { 
            $str=iconv("utf-8","utf-8",$str); 
        } 
        if ($str!='') {
            $result=$result_engine.": ".$str; 
        } else {
            $result = ""; 
        }
    }
    else { 
        $result = $refer; 
    } 
    return $result; 
}

// Генерация случайных имён для изображений
function gen_img_names($length = 4)
{
   $chars = 'abdefhiknrstyzABDEFGHKNQRSTYZ0123456789';
   $numChars = strlen($chars);
   $string = '';
   for ($i=0; $i<$length; $i++) 
   {
        $string .= substr($chars, rand(1, $numChars) - 1, 1);
   }
   return $string;
}


function check_session()
{
    if (isset($_SESSION['authorized'])) {
        if ($_SESSION['authorized'] == true) {
            return true;
        } else {
            return false;
        }
    }
}


function full_del_dir ($directory) {
    $dir = opendir($directory);
    while(($file = readdir($dir))) {
        if ( is_file ($directory."/".$file)) {
            unlink ($directory."/".$file);
        }
        else if ( is_dir ($directory."/".$file) && ($file != ".") && ($file != "..")) {
            full_del_dir ($directory."/".$file);  
        }
    }
    closedir ($dir);
    rmdir ($directory);
}

?>
